package com.ys.File;

import java.io.File;
import java.io.FileFilter;
import java.io.IOException;

/**
 * 描述: 文件操作
 * File 的相对路径与 js url 相对路径有所不同,是以当前所在项目为参照基础,而不是使用的当前路径
 *
 *
 * public File(String pathname)	通过将给定路径名字符串转换为抽象路径名来创建一个新File实例
 * public File(File parent, String child)	根据parent抽象路径名和child路径名字符串创建一个新File实例
 * public File(String parent, String child)	根据parent路径名字符串和child路径名字符串创建一个新File实例
 * @author CodeYang
 * @version 2020/12/23 14:06
 */
public class File文件操作 {
    public static void main(String[] args) {
        File file = new File("test");

            file.delete();


        //  creteFiles("","");
//       f2();
//       f3();

    }

    /**
     * 只要标准文件:
     * 过滤器
     */
    private static void f3() {
        System.out.println("文件------");
        File file = new File("F:/STX_WorkSpace/WH201130JAVA班/PrivateWorkspace/day_18");
        File[] files = file.listFiles(new FileFilter() {

            /**
             * 过滤器规则:
             *  返回 文件目录
             * @param pathname  File 对象
             * @return  满足自定义规则就放行 File 对象
             */
            @Override
            public boolean accept(File pathname) {
                return pathname.isFile();
            }
        });
        for (File file1 : files) {
            System.out.println(file1.getName());
        }
    }

    /**
     * 只要文件夹:(目录)
     */
    private static void f2() {
        System.out.println("文件夹------");
        File file = new File("F:/STX_WorkSpace/WH201130JAVA班/PrivateWorkspace/day_18");
        File[] files = file.listFiles(new FileFilter() {

            /**
             * 过滤器规则:
             *  返回 文件目录
             * @param pathname  File 对象
             * @return  满足自定义规则就放行 File 对象
             */
            @Override
            public boolean accept(File pathname) {
                return pathname.isDirectory();
            }
        });
        for (File file1 : files) {
            System.out.println(file1.getName());
        }
    }

    /**
     * 创建文件 父路径+子文件名称.类型
     * @param parent 父路径 可以是相对路径/绝对路径
     * @param files  文件名称
     */
    static void creteFiles(String parent,String files) throws IOException {
        // 这里使用了相对路径是 项目的工作路径
        // URL 寻址规则: . 代表自身 .. 代表上一级
        // File parentFile = new File("./demo/abc");
        File parentFile = new File("./demo/abc");
        if (!parentFile.exists()){
            // file.mkdirs(); 只能创建文件夹
            parentFile.mkdirs();
        }
        File childr = new File(parentFile, "abc.txt");
        if (!childr.exists()){
            // 创建文件
            boolean newFile = childr.createNewFile();
        }
    }
}
